25 印度对外贸易的探索性研究
25.1 引言贸易数据分析的重要性
对外贸易分析: - 贸易伙伴: 识别主要进出口国 - 贸易趋势: 了解贸易发展方向 - 政策制定: 基于数据的贸易政策
25.2 数据准备
# 注:sk2018-2010_export.csv 和 sk2018-2010_import.csv 数据文件本地没有,但平台已经内置
# =============================================================================
# 题目:印度对外贸易数据读取与透视表构建
# =============================================================================
# 本代码块实现印度进出口贸易数据的读取和初步整理
# 通过透视表构建,将数据按国家和年份进行重排,便于后续趋势分析
# ==================== 导入数据分析与可视化库 ====================
import pandas as pd # 导入Pandas库,用于数据表操作和分析
import numpy as np # 导入NumPy库,用于数值计算
import matplotlib.pyplot as plt # 导入Matplotlib库,用于绘图
from IPython.display import display, Markdown # 导入显示工具,用于富文本输出
# ==================== 设置中文字体支持 ====================
plt.rcParams['font.sans-serif'] = ['SimHei'] # 设置绘图时的中文字体为黑体,避免中文显示为方框
plt.rcParams['axes.unicode_minus'] = False # 解决负号'-'显示为方块的问题
# ==================== 读取进出口贸易数据 ====================
df_export = pd.read_csv('sk2018-2010_export.csv') # 读取2010-2018年印度出口数据,包含国家、年份、贸易额等字段
df_import = pd.read_csv('sk2018-2010_import.csv') # 读取2010-2018年印度进口数据,包含国家、年份、贸易额等字段
print('出口数据形状:', df_export.shape) # 输出出口数据集的行数和列数,了解数据规模
print('进口数据形状:', df_import.shape) # 输出进口数据集的行数和列数,了解数据规模
# ==================== 构建出口透视表 ====================
exp_country_table = pd.pivot_table(
df_export, # 以出口数据为源数据
values='value', # 透视表的值为贸易额(value字段)
index='country', # 行索引为国家,便于观察各国家趋势
columns='year' # 列为年份,便于观察时间序列变化
)
# ==================== 构建进口透视表 ====================
imp_country_table = pd.pivot_table(
df_import, # 以进口数据为源数据
values='value', # 透视表的值为贸易额(value字段)
index='country', # 行索引为国家
columns='year' # 列为年份
)
print('\n出口透视表:') # 输出标题
print(exp_country_table.head()) # 显示出口透视表的前5行,预览数据结构25.3 出口趋势分析
# 注:sk2018-2010_export.csv 和 sk2018-2010_import.csv 数据文件本地没有,但平台已经内置
# ⚠️ 平台原始代码 - 请原样输入至教学平台(注释除外),平台才会判定答案正确
import pandas as pd # 导入Pandas数据分析库
import numpy as np # 导入NumPy数值计算库
import matplotlib.pyplot as plt # 导入Matplotlib绑图库
plt.rcParams['font.sans-serif'] = ['SimHei'] # 使用黑体作为默认字体以支持中文
plt.rcParams['axes.unicode_minus'] = False # 正确显示负号
from IPython.display import display, Markdown # 导入display,模块
#定义加粗显示函数
def bold(string):
display(Markdown(string)) # 以Markdown格式渲染输出描述性文本
#读取进出口数据
df_export = pd.read_csv('sk2018-2010_export.csv')
df_import = pd.read_csv('sk2018-2010_import.csv') # 从CSV文件读取数据存入df_import
# 创建透视表exp_country_table
exp_country_table = pd.pivot_table(df_export, values = 'value', index = 'country', columns = 'year')
# 创建透视表imp_country_table
imp_country_table = pd.pivot_table(df_import, values = 'value', index = 'country', columns = 'year')
bold('**2010年至2018年印度对外贸易出口方向的趋势**') # 以粗体Markdown格式输出:2010年至2018年印度对外贸易出口方向的趋势
plt.figure(figsize=(15,10)) # 创建图形画布
plt.subplot(221) # 选择子图位置
g = exp_country_table.loc["U S A"].plot(color='purple', linewidth=3) # 按标签索引提取数据
g.set_ylabel('USD (millions)', fontsize = 12) # 设置Y轴标签
g.set_xlabel('Year', fontsize = 12) # 设置X轴标签
g.set_title('对美国出口的趋势', size = 15) # 设置图表标题
plt.subplot(222) # 选择子图位置
g1 = exp_country_table.loc["U ARAB EMTS"].plot(color='purple', linewidth=3) # 按标签索引提取数据
g1.set_ylabel('USD (millions)', fontsize = 12) # 设置Y轴标签
g1.set_xlabel('Year', fontsize = 12) # 设置X轴标签
g1.set_title('对阿联酋出口的趋势', size = 15) # 设置图表标题
plt.subplot(223) # 选择子图位置
g2 = exp_country_table.loc["CHINA P RP"].plot(color='purple', linewidth=3) # 按标签索引提取数据
g2.set_ylabel('USD (millions)', fontsize = 12) # 设置Y轴标签
g2.set_xlabel('Year', fontsize = 12) # 设置X轴标签
g2.set_title('对中国出口的趋势', size = 15) # 设置图表标题
plt.subplot(224) # 选择子图位置
g3 = exp_country_table.loc["HONG KONG"].plot(color='purple', linewidth=3) # 按标签索引提取数据
g3.set_ylabel('USD (millions)', fontsize = 12) # 设置Y轴标签
g3.set_xlabel('Year', fontsize = 12) # 设置X轴标签
g3.set_title('对香港出口的趋势', size = 15) # 设置图表标题
plt.subplots_adjust(hspace = 0.4) # 调整子图间距
plt.savefig("5.png") # 保存图形至文件
bold('**2010年至2018年印度对外贸易进口方向的趋势**') # 以粗体Markdown格式输出:2010年至2018年印度对外贸易进口方向的趋势
plt.figure(figsize=(15,10)) # 创建图形画布
plt.subplot(221) # 选择子图位置
g = imp_country_table.loc["U S A"].plot(color='coral', linewidth=3) # 按标签索引提取数据
g.set_ylabel('USD (millions)', fontsize = 12) # 设置Y轴标签
g.set_xlabel('Year', fontsize = 12) # 设置X轴标签
g.set_title('从美国进口的趋势', size = 15) # 设置图表标题
plt.subplot(222) # 选择子图位置
g1 = imp_country_table.loc["U ARAB EMTS"].plot(color='coral', linewidth=3) # 按标签索引提取数据
g1.set_ylabel('USD (millions)', fontsize = 12) # 设置Y轴标签
g1.set_xlabel('Year', fontsize = 12) # 设置X轴标签
g1.set_title('从阿联酋进口的趋势', size = 15) # 设置图表标题
plt.subplot(223) # 选择子图位置
g2 = imp_country_table.loc["CHINA P RP"].plot(color='coral', linewidth=3) # 按标签索引提取数据
g2.set_ylabel('USD (millions)', fontsize = 12) # 设置Y轴标签
g2.set_xlabel('Year', fontsize = 12) # 设置X轴标签
g2.set_title('从中国进口的趋势', size = 15) # 设置图表标题
plt.subplot(224) # 选择子图位置
g3 = imp_country_table.loc["SAUDI ARAB"].plot(color='coral', linewidth=3) # 按标签索引提取数据
g3.set_ylabel('USD (millions)', fontsize = 12) # 设置Y轴标签
g3.set_xlabel('Year', fontsize = 12) # 设置X轴标签
g3.set_title('从沙特阿拉伯进口的趋势', size = 15) # 设置图表标题
plt.subplots_adjust(hspace = 0.4) # 调整子图间距
plt.savefig("6.png") # 保存图形至文件25.4 进口趋势分析
# 注:该代码块依赖的数据来自上方平台任务代码块,因其未执行,本块也无法执行
bold('**2010年至2018年印度对外贸易进口方向的趋势**') # 显示章节标题
# ==================== 创建2x2子图布局 ====================
fig, axes = plt.subplots(2, 2, figsize=(15, 10)) # 创建4个子图,用于展示4个主要进口来源国的趋势
# ==================== 绘制从美国进口趋势图 ====================
imp_country_table.loc['U S A'].plot( # 选择从美国进口的数据
ax=axes[0, 0], # 绘制在第一行第一列
color='coral', # 设置线条颜色为珊瑚色,与出口的紫色形成对比
linewidth=3 # 设置线宽
)
axes[0, 0].set_ylabel('USD (millions)', fontsize=12) # 设置y轴标签
axes[0, 0].set_xlabel('Year', fontsize=12) # 设置x轴标签
axes[0, 0].set_title('从美国进口的趋势', size=15) # 设置子图标题
# ==================== 绘制从阿联酋进口趋势图 ====================
imp_country_table.loc['U ARAB EMTS'].plot( # 选择从阿联酋进口的数据
ax=axes[0, 1], # 绘制在第一行第二列
color='coral', # 使用珊瑚色,保持一致性
linewidth=3 # 设置线宽
)
axes[0, 1].set_ylabel('USD (millions)', fontsize=12) # 设置y轴标签
axes[0, 1].set_xlabel('Year', fontsize=12) # 设置x轴标签
axes[0, 1].set_title('从阿联酋进口的趋势', size=15) # 设置子图标题
# ==================== 绘制从中国进口趋势图 ====================
imp_country_table.loc['CHINA P RP'].plot( # 选择从中国进口的数据
ax=axes[1, 0], # 绘制在第二行第一列
color='coral', # 使用珊瑚色
linewidth=3 # 设置线宽
)
axes[1, 0].set_ylabel('USD (millions)', fontsize=12) # 设置y轴标签
axes[1, 0].set_xlabel('Year', fontsize=12) # 设置x轴标签
axes[1, 0].set_title('从中国进口的趋势', size=15) # 设置子图标题
# ==================== 绘制从沙特阿拉伯进口趋势图 ====================
imp_country_table.loc['SAUDI ARAB'].plot( # 选择从沙特阿拉伯进口的数据
ax=axes[1, 1], # 绘制在第二行第二列
color='coral', # 使用珊瑚色
linewidth=3 # 设置线宽
)
axes[1, 1].set_ylabel('USD (millions)', fontsize=12) # 设置y轴标签
axes[1, 1].set_xlabel('Year', fontsize=12) # 设置x轴标签
axes[1, 1].set_title('从沙特阿拉伯进口的趋势', size=15) # 设置子图标题
# ==================== 调整子图间距并显示 ====================
plt.subplots_adjust(hspace=0.4) # 设置子图垂直间距
plt.tight_layout() # 自动调整布局
plt.show() # 显示图形25.5 分析结论
出口趋势: - 对美国、中国出口稳步增长 - 阿联酋和香港有所波动
进口趋势: - 从中国进口持续增长 - 能源进口(阿联酋、沙特)受油价影响